package com.sunfeng.springcloud.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.function.Function;

/**
 * 创建一个简单的路由   new Function<>()  Supplier   创建者模式
 *
 *  编码型配置文件  一般不这麽使用
 *
 * @author sunfeng
 * @date 2021/04/02 10:15
 **/
@Configuration
public class GateWayConfig {
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder) {
        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
            //可见当我们向gateway工程请求“/get”,gateway会将工程的请求转发到“http://httpbin.org/get”，并且在转发之前，加上一个filter，该filter会将请求添加一个header,key为hello，value为world。
        routes.route("path_route_sunfeng",
                r -> r.path("/guonei")
                        .filters(f -> f.addRequestHeader("Hello", "World"))
                        .uri("http://news.baidu.com/guonei")).build();

        return routes.build();
    }


}
